Recently there has been a move toward so-called general purpose GPUs (GPGPUs). Unlike traditional GPUs, which perform graphics rendering, GPGPUs may be configured to execute a general purpose task or program, often referred to as a “kernel.” Some types of tasks may be better suited to particular a type of processor, such as a central processing (CPU) or GPU. CPUs may be better suited for tasks with more branches, jumps, and conditional logic, while GPUs may be suited to highly parallel tasks and/or tasks with many floating point calculations. GPUs may also include the capability to execute SIMD (Single Instruction multiple Data) instructions, as many GPUs have a SIMD hardware architecture. When a GPU executes a SIMD instruction, the GPU may execute the same operation, indicated by the instruction, on multiple data values. Typically, a GPU has multiple execution units which are capable of executing the operations indicated by the SIMD instruction in parallel.